package com.textformat.core.InputAndOutput.impl;

import com.textformat.common.FileUtils;
import com.textformat.core.InputAndOutput.Input;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 这个枚举的每一项都是 一个独立的文本获取器
 * 它是静态的，只提供功能性调用，不存储任何内容
 */
public enum InputEnum implements Input {

    CONSOLE{
        @Override
        public List<String> getText(String s) {
            List<String> list = new ArrayList<>();
            System.out.println("输入一行表示其中一项，以end() 结束");
            System.out.println("请输入内容：");
            String txt = "";
            Scanner sc = new Scanner(System.in);
            while (true){
                txt = sc.nextLine();
                if("end()".equals(txt)) break;
                list.add(txt);
            }
            return list;
        }
    },

    FILE_TXT{
        @Override
        public List<String> getText(String fileName) {
            if (FileUtils.isTxtFile(fileName))
                return FileUtils.getList(fileName);
            throw new IllegalArgumentException("文本转换器>>>  文件非txt，传入文件名："+fileName);
        }
    },

    FILE_XLS{
        @Override
        public List<String> getText(String s) {
            return null;
        }
    },

    FILE_PDF{
        @Override
        public List<String> getText(String s) {
            return null;
        }
    },

    FILE_CSV{
        @Override
        public List<String> getText(String s) {
            return null;
        }
    }
}
